The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Stream Control Transmission Protocol (SCTP) is a transport-layer data communication and control protocol that facilitates communication between networked computer devices. SCTP is described, for example, in R. Stewart et al., “Stream Control Transmission Protocol (SCTP): A Reference Guide” (Boston: Addison-Wesley, 2001).
A network element is termed “multi-homed” when the network element is identified by more than one network address. For example, home gateways and other network elements may comprise more than one network interface card (NIC), each of which has a separate Internet Protocol (IP) address. SCTP can support communications between a multi-homed network element and another network element, such as a server. In particular, under SCTP a multi-homed network element can initiate a transport layer connection by advertising more than one network address in a connection initiation message.
Network address translator (NAT) devices enable concealing the private network addresses of hosts on a local network from hosts outside the local network. NAT devices typically inspect all packets moving between the local network and external devices or internetworks, and transform host network addresses in the packet to reference the NAT device.
Multi-homed network elements may experience a failure of one or more interfaces. When such a failure occurs, the network element becomes unreachable at the network address that is associated with the failed interface. A server or other application that knows that a client device is multi-homed may respond to such a failure by switching over to a different network address associated with the same client, and sending messages to that address. Alternatively, the client may dynamically change its network address after a connection or session is established.
However, applications that use SCTP with multi-homing cannot operate across NAT devices seamlessly when an SCTP association attempts to change to a different one of the multi-homed network addresses. This drawback arises because conventional NAT devices are configured to store connection state or session information, such as segment sequence numbers and acknowledgment numbers, as part of a single connection state object, which uniquely identifies the connection using only one host network address. Classically, a connection object is identified by a five-tuple of values comprising protocol identifier, source network address, source port value, destination network address, and destination port value. There is no mechanism for substituting different network addresses of multi-homed devices once a connection is established.
Based on the foregoing, there is a clear need for an improved NAT device that can properly process messages or packets when endpoints in a multi-homed connection switch over to a different network address or connection association.
There is a specific need for an approach in a NAT for seamlessly processing packets or otherwise responding to such a switchover among endpoints in a multi-homed SCTP association that occurs after the SCTP association is established.